<?php
class NowyProjekt_Controller extends NowyWniosek_Controller
{
        public $projekt,$nowy;
	public function __construct()
	{
		parent::__construct();
                $nowy=false;
                $this->session=new Session();

                //if ($this->session->get('linki'))
                //    $this['linki']=$this->session->get('linki');

                $this->uzytkownik=new Uzytkownik_Model();
                $this->projekt=new Projekt_Model();
            $this->uzytkownik->set_login('szkolenia1');
            $this->uzytkownik->set_id('330');
            $this->projekt->set_id_user_projektu('330');
            $this->session->set('zalogowany','330');
            //$this->session->set('przypisany_do_wniosku','6');
            //$this->session->delete('przypisany_do_wniosku');
            $sciezka='forms/SRM/Gielda/Form/';
            $tablica=array('NowyProjekt','Uwagi');
            foreach($tablica as $nazwa_pliku)
                {
                APPPATH.$sciezka.$nazwa_pliku.".php";
                require_once APPPATH.$sciezka.$nazwa_pliku.".php";
                }
	}
	protected function formularz_nowy_produkt()
        {
            $produkt=new SRM_Gielda_Form_NowyProjekt();
            return $produkt;

        }
       public function uzupelnij_liste()
        {
            $id=$_POST['id_osoby'];
            $this->uzytkownik->set_id($_POST['id_osoby']);
            echo $this->session->get('id_nowego_projektu');
        }
        public function zapisz_role()
        {
            $this->uzytkownik->przypisz_role($_POST['rola'],$_POST['user'],$this->projekt->pobierz_nowe_id('330'));
            echo 'ok';
        }
       public function usun_osobe()
        {
           $tab=explode('|',$_POST['id_']);
           $this->uzytkownik->set_id($tab[0]);
           echo $this->uzytkownik->usun_osobe_z_projektu($tab[1]);
        }
        /**
         *
         * @return <type> przypisywanie danych z formularza do tablicy asco
         */
        protected function _przypisz_dane_formularza()
        {
            $tab['nazwa']=$this['projekt']->getValue('nazwa');
            $tab['opis']=$this['projekt']->getValue('opis');
            $tab['rozszerzony']=$this['projekt']->getValue('rozszerzony');
            $tab['waluta']=$this['projekt']->getValue('waluta');
            $tab['burzet']=$this['projekt']->getValue('burzet');
            return $tab;
        }
        public function uwagi($parametr=null)
        {
            $this->_funkcja();
            $this['produkt']='4';
            $formularz=$this->_form('uwagi_projekt');
            
            switch($parametr)
            {
                case 'o':
                    //przeslano hamonogram
                    break;
                case 'zapisz_uwagi':
                    //zapisz uwagi projektu
                    $this['uwagi_']=$this->_form('uwagi_projekt');
                    if (request::method()=="post")
                    {
                        $this['uwagi_']->bind($this->input->post(),$_FILES);
                        if ($this['uwagi_']->isValid())
                            {
                            $this->projekt->set_id($this->session->get('id_nowy_projekt'));
                            $this->projekt->set_uwagi($this['uwagi_']->getValue('pole'));
                            $this->projekt->zapisz_uwagi();
                            $formularz->setDefaults($this->projekt->pobierz(0));
                            $this['informacja']='Zapisano uwagi do projektu';
                            }
                    }
                    break;
                case 'zakoncz':
                    //zakoncz projekt
                    $this['uwagi_']=$this->_form('uwagi_projekt');
                    if (request::method()=="post")
                    {
                        $this['uwagi_']->bind($this->input->post(),$_FILES);
                        if ($this['uwagi_']->isValid())
                            {
                            $this->projekt->set_id($this->session->get('id_nowy_projekt'));
                            $this->projekt->set_uwagi($this['uwagi_']->getValue('pole'));
                            $this->projekt->zapisz_uwagi();
                            $this->projekt->zamknij_edycje();
                            $this->session->delete('id_nowy_projekt');
                            $this['informacja']='Wysłano projekt.';
                            }
                    }
                    break;
                default:
                    //$this->projekt->set_id($this->session->get('id_nowy_projekt'));
                    //var_dump($this->projekt->pobierz(1));
                    //$formularz->setDefaults($this->projekt->pobierz(1));
                    break;
            }
            $this['uwagi_']=$formularz;
            $this->_numer_projektu();
            //$this['uwagi_']=$this->_form('uwagi_projekt');
            $this['koniec']='1';
            $this['przyciski']=array('wstecz'=>'harmonogram_projekt','zapisz'=>'zapisz_uwagi','dalej'=>'zakoncz_projekt');
            $this['link']='nowyprojekt/_uwagi.html';
            echo $this->render('nowyprojekt/nowyprojekt.html');
        }
        public function opis_projektu__dostawcy()
        {
            $this->_numer_projektu();
            $this['produkt']='6';
            $this['link']='nowyprojekt/2_dostawcy.html';
                echo $this->render('nowyprojekt/nowyprojekt.html');
        }
        protected function _numer_projektu()
        {
            $this['numer_projektu']=$this->session->get('id_nowy_projekt');
        }
        public function opis_projektu__kryteria()
        {
            $this->_numer_projektu();
            
            APPPATH."forms/SRM/Gielda/Form/Kryteria.php";
            require_once APPPATH."forms/SRM/Gielda/Form/Kryteria.php";
            $this['kryteria']=new SRM_Gielda_Form_Kryteria();
            $this['link']='nowyprojekt/2_kryteria.html';
            $this['link_']='nowyprojekt/__menu_dol.html';
            if (request::method()=="post")
            {
                $this['kryteria']->bind($this->input->post(),$_FILES);
                if ($this['kryteria']->isValid())
                {
                    $this->projekt->set_warunki($this['kryteria']->getValue('wnioski'));
                    $this->projekt->set_kryterium($this['kryteria']->getValue('kryterium'));
                    $this->projekt->set_id($this->session->get('id_nowy_projekt'));
                    $this->projekt->dodaj_kryterium_wnioski();
                    $this['informacja']='Dodano kryterium i wnioski do projektu';
                }
            }
            echo $this->render('nowyprojekt/nowyprojekt.html');
        }
        /**
         *generowanie nowego projektu na podstawie danego wniosku o numerze id w parametrze
         * @param int $parametr numer id wniosku w bazie danych
         */
        public function generuj_na_postawie_wniosku($parametr)
        {
            $this->wniosek->set_id($parametr);
            $wynik=$this->wniosek->stworz_projekt_z_wniosku(
                    $this->wniosek->pobierz_wniosek('*'),
                    $this->session->get('zalogowany'));
            $this->nowy=true;
            $this->session->set('id_nowy_projekt',$wynik->insert_id());
            $this->session->set('kopia',$parametr);
            $this['kopia']=$this->session->get('kopia');
            $this->opis_projektu();
        }
        /**
         * tworzenie nowego projektu
         */
	public function opis_projektu($parametr=null)
	{
            if($parametr=='projekt')
            {
                $this->session->set('linki','projekt');
                $this->session->set('wersja',2);
                $this['wersja']=$this->session->get('wersja');
                $this['linki']=$this->session->get('linki');
            }
//            var_dump($_SESSION);
            if($this->nowy==false)
                $this->_funkcja();

            $formularz=$this->_form('projekt_opis');
            $this->session->set('zalogowany','330');
            $this->projekt->set_id($this->session->get('id_nowy_projekt'));
            switch($parametr)
            {
                case 'zapisz':
                    if(isset($_POST['wnioski']) and is_numeric($_POST['wnioski']))
                        {
                        $this->projekt->set_id($_POST['wnioski']);
                        $zmienna2=$this->projekt->pobierz(2);
                        if(empty($zmienna2))
                            $this['blad_numer']="<font color='red'>Brak wniosku o podanym numerze.</font>";
                        else
                        {
                            //echo '<br>sprawdzanie czy jest powiazany';
                            $this->projekt->set_id($this->session->get('id_nowy_projekt'));
                            $zmienna2=$this->projekt->pobierz(3);
                            if(empty($zmienna22))
                            {
                                $this->session->set('przypisany_do_wniosku',$this->input->post('wnioski'));
                                $this['_wniosek_']=$this->input->post('wnioski');
                                if (request::method()=="post")
                                    $this->_spr('projekt_opis',$formularz);
                            }
                            else {
                                $this['blad_numer']="<font color='red'>Ten numer wniosku jest powiazany z innym projektem.</font>";
                            }
                        }
                        }
 else {
    if (request::method()=="post")
                                    $this->_spr('projekt_opis',$formularz);
}
                        //$zmienna=$this->projekt->pobierz_puste_wnioski($_POST['wnioski']);
                        /*
                        if(!empty($zmienna))
                        {
                            $this['informacja']='Nie ma takiego wniosku bądź wniosek jest przypisany.';
                        }
                            else
                            {
                                $this['_wniosek_']=$this->input->post('wnioski');
                                $this->session->set('przypisany_do_wniosku',$this->input->post('wnioski'));
                                if (request::method()=="post")
                                    $this->_spr('projekt_opis',$formularz);
                            }
                        }
                        else
                            $this['blad_numer']='Nie powiązano projektu z żadnym wnioskiem.';
                         * 
                         */
                    //$formularz->setDefaults($this->projekt->pobierz(0));
                    break;
                case 'odczytaj':
                    var_dump($_SESSION);
                    $this->projekt->set_id($this->session->get('id_nowy_projekt'));
                    var_dump($this->projekt->pobierz(0));
                    //$formularz->setDefaults($this->projekt->pobierz(0));
                    break;
                default:
                    if($this->nowy==false)
                        $this->session->set('id_nowy_projekt',$this->projekt->pobierz_nowe_id());
                    $zdarzenia=new Zdarzenie_Model();
                    $zdarzenia->set_id_projektu($this->session->get('id_nowy_projekt'));
                    $zdarzenia->przypisz_domyslne();
                    break;
            }
            //$formularz->setDefaults($this->projekt->pobierz(0));
            $this['numer_projektu']=$this->session->get('id_nowy_projekt');

            $this['produkt']='1';
            $this['link']='nowyprojekt/_opis_projektu.html';
            $this['link2']='menu/__menu_dol.html';
            $this['przyciski']=array('zapisz'=>'zapisz_opis_projekt','dalej'=>'zapisz_opis_projekt');
            //$this['przyciski']=array('zapisz'=>'zapisz_opis_projekt','dalej'=>'osoby_projekt');
            $this['projekt']=$formularz;
            //var_dump($_SESSION);
            echo $this->render('nowyprojekt/nowyprojekt.html');
	}
        public function dodaj_osobe_do_projektu()
        {
            $indeksy=explode(',',$_POST['osoba_do_projektu']);
            $this->uzytkownik->set_id($indeksy[0]);
            $this->uzytkownik->przypisz_do_projektu($indeksy[1]);
            echo $this->uzytkownik->zwroc_przypisanych($this->session->get('id_nowego_projektu'));
        }
        /**
         * dodawanie osoby do bazy osoby 
         */
        public function dodaj_osobe_z_palca()
        {
            //zminimalizowanie przerw do jednej miedzy slowami
            $zmienna_tymcz=preg_replace('/\s\s+/', ' ', $_POST['nazwisko']);
            //zamiana tekstu na tablice
            $dane=explode(' ',$zmienna_tymcz);
            $id_=$this->projekt->pobierz_nowe_id($this->session->get('zalogowany'));
            $id_osoby=$this->uzytkownik->dodaj_z_palca(
                    $dane[0],
                    $dane[1],
                    $_POST['email'],
                    $id_);
            $this->uzytkownik->przypisz_do_projektu($id_osoby,$id_);
            echo $this->uzytkownik->pobierz_tabele($id_);
        }
        protected function _funkcja()
        {
            if($this->session->get('kopia'))
                    {
                    $this['kopia']=$this->session->get('kopia');
                    $this['nowy_projektu']=$this->session->get('id_nowy_projekt');
                    }
            $this->projekt->set_id_user_projektu(
                    $this->session->get('zalogowany'));
            $this->uzytkownik->set_idprojektu($this->session->get('id_nowy_projekt'));
            if($this->session->get('przypisany_do_wniosku'))
                $this['_numer_']=$this->session->get('przypisany_do_wniosku');
        }
        public function osoby($parametr=null)
        {
            $this['sciezka_do_pliku_xls']=url::base().'/public/_formularz_do_importu_osob_w_projekcie.xls';
            $this->_funkcja();
            switch($parametr)
            {
                case 'usun':
                    if (isset($_POST['check']))
                    {
                    foreach($this->input->post('check') as $r)
                        {
                        $dane=explode('|',$r);
                        $this->uzytkownik->set_id($dane[0]);
                        $this->uzytkownik->set_idprojektu($dane[1]);
                        $tt=$this->uzytkownik->usun_osobe_z_projektu(null);
                        }
                    $this['informacja']='Usunięto osobę/osoby z projektu.';
                    }
                    break;
                case 'xls_zapisz':
                    //dodawanie osob z xls-a
                    foreach($this->input->post('check') as $r)
                            {
                            $dane=explode('|',$r);
                            $this->uzytkownik->set_nazwisko($dane[0]);
                            $this->uzytkownik->set_imie($dane[1]);
                            $this->uzytkownik->set_email($dane[2]);
                            $id_=$this->uzytkownik->dodaj_z_palca($dane[2],null);
                            $this->uzytkownik->set_id($id_);
                            $this->uzytkownik->przypisz_do_projektu($this->session->get('id_nowy_projekt'),null);
                            }
                            $this['informacja']='Zaimportowano osobę/osoby do projektu.';
                    break;
                case 'xls_import':
                    $this->_spr('xls_import');
                    $tablica=array(
                        'nazwisko'  => 'lang_nazwa',
                        'nazwisko'  => 'lang_nazwa',
                        'email' => 'lang_nazwa');
                    $tablica2=array(
			'nazwisko'  => new sfValidatorString(array('required' => true)),
                        'imie'  => new sfValidatorString(array('required' => true)),
			'email'=> new sfValidatorString(array('required' => true)));
                        $szablon='nowyprojekt/dialog_xls.html';
                        require_once APPPATH."libraries/SRM/Data/Import/ExcelSchema.php";
                        $this['opis2']=$this->_form('xls');
                        $this['opis2']->bind($this->input->post(),$_FILES);
                        if ($this['opis2']->isValid())
                            {
                            $plik=$this['opis2']->getValue('plik');
                            $czytnik_xls = new SRM_Data_Import_Produkty(false);
                            $czytnik_xls->setLabels($tablica);
                            $czytnik_xls->setSchema($tablica2);

                            $plik->save('_'.$plik->getOriginalName());
                            if ($plik->isSaved())
                                {
                                $produkty = $czytnik_xls->process('./public/test/testowanie/_'.$plik->getOriginalName());
                                unset($produkty[0]);
                                $this['plik_xls']=$produkty;
                                $this['link_dialog']=$szablon;
                                }
                            }
                    break;
                case 'osoba_z_palca':
                    //dodawnaie osob z palca do projektu
                    $dane=explode(' ',$this->input->post('nazwisko'));
                    if(count($dane)==2)
                        {
                        $this->uzytkownik->set_nazwisko($dane[0]);
                        $this->uzytkownik->set_imie($dane[1]);
                        $this->uzytkownik->set_email($this->input->post('email'));
                        $id=$this->uzytkownik->dodaj_z_palca('o',null);
                        $this->uzytkownik->set_id($id);
                        $this->uzytkownik->przypisz_do_projektu($this->session->get('id_nowy_projekt'),null);
                        $this['informacja']='Dodano osobę do projektu.';
                        }
                        else
                        $this['informacja']="<font color='red'>Niepoprawna wartość w polu Dodaj osobę</font>.";
                    break;
                case 'role'://zapisuje role osob
                    foreach($this->input->post('role') as $wartosc)
                        {
                        $dane=explode('|',$wartosc);
                        $this->uzytkownik->set_id($this->session->get('id_nowy_projekt'));
                        $this->uzytkownik->przypisz_role($dane[0],$dane[1],'projekt');
                        }
                    $this['informacja']='Zapisano informacje o rolach osób.';
                    break;
                case 2:
                    if(isset($_POST['check']))
                    {
                    $this->uzytkownik->dodaj_z_UI(
                        $this->input->post(),$this->session->get('id_nowy_projekt'));
                    $r=$this->uzytkownik->pobierz_przypisanych($this->session->get('id_nowy_projekt'));
                    $this['uzytkownicy_projektu']=$r;
                    }
                    break;
                case 3:
                    //dodawanie z UI z xls
                    $this->uzytkownik->importuj_z_xls($_POST,$this->projekt->pobierz_nowe_id($this->session->get('zalogowany')),true);
                    $this['uzytkownicy_projektu']=$this->uzytkownik->pobierz_przypisanych($this->session->get('id_nowy_projekt'));
                    break;
                case 'osoby_srm':
                    //cos tam
                    $this['inni']=$this->uzytkownik->pobierz_nieprzypisanych($this->session->get('id_nowy_projekt'));
                    $this['link_dialog']='nowyprojekt/dialog.html';
                    break;
            }
            $this->url();
            $this['produkt']='2';
            $this['numer_projektu']=$this->session->get('id_nowy_projekt');
            $this['role']=$this->uzytkownik->pobierz_role();
            $this['uzytkownicy_projektu']=$this->uzytkownik->pobierz_przypisanych('p');
            $this['opis']=$this->_form('osoby_projekt');
            $this['opis2']=$this->_form('xls');
            $this['opcja_xls']='importuj_xls_projekt';
            $this['opcja']='dodaj_z_palca_osobe_projekt';
                $role=new Rola_Model();
            $this['role']=$role->pobierz_role();
            $this['link']='nowyprojekt/_osoba.html';
            $this['dodaj']='_dodaj_z_palca.html';
            //$this['przyciski']=array('wstecz'=>'osoby','zapisz'=>'zapisz_osoby_projekt','dalej'=>'harmonogram_projekt_odczyt');
            $this['przyciski']=array('wstecz'=>'osoby','zapisz'=>'zapisz_osoby_projekt','dalej'=>'zadania_projekt');
            $this['link_menu']='menu/__menu_wsteczzapiszprojektdalej.html';
             
            echo $this->render('nowyprojekt/nowyprojekt.html');

        }
        public function zadania($parametr=null,$id_zdarzenia=null)
        {
            if($this->session->get('przypisany_do_wniosku'))
                $this['_numer_']=$this->session->get('przypisany_do_wniosku');
            $this->_funkcja();
            $zadania=new Zdarzenie_Model();
            switch($parametr)
            {
                case 'usun':
                    $zadania->set_id_projektu($id_zdarzenia);
                    $zadania->usun_zdarzenie_calkowicie();
                    break;
            }
            $this['produkt']='5';
            
            if($this->input->post('zdarzenia')=='inne')
            {
                $this['dodaj']='tak';
            }
            if(isset($_POST['nowe_zdarzenie']))
            {
                $zadania->set_nazwa($_POST['nowe_zdarzenie']);
                $id=$zadania->dopisz();
                $zadania->dopisz_do_projektu($id->insert_id(),$this->session->get('id_nowy_projekt'));
            }
            $zadania->set_id_projektu($this->session->get('id_nowy_projekt'));
            $this['zdarzenia']=$zadania->pobierz_wszystkie_przypisane();
            $this['zdarzenia_nieprzypisane']=$zadania->pobierz_wszystkie_nieprzypisane($this->session->get('id_nowy_projekt'));
            $this['link']='nowyprojekt/_zadania.html';
            $this['przyciski']=array('wstecz'=>'osoby_przeglad','zapisz'=>'zapisz_osoby_projekt','dalej'=>'harmonogram_projekt2');
            $this['link_menu']='menu/__menu_wsteczzapiszprojektdalej.html';
            echo $this->render('nowyprojekt/nowyprojekt.html');
        }
        protected function _harmonogram()
        {
            APPPATH."forms/SRM/Gielda/Form/Harmonogram.php";
            require_once APPPATH."forms/SRM/Gielda/Form/Harmonogram.php";
            $harmonogram=new SRM_Gielda_Form_Harmonogram();
            return $harmonogram;
        }
        public function harmonogram($parametr=null)
        {
            $this->_funkcja();
            $formularz=$this->_form('harmomogram_projekt');
            
            switch($parametr)
            {
                case 'odczyt':
                    $this->projekt->set_id($this->session->get('id_nowy_projekt'));
                    $t=$this->projekt->pobierz(0);
                    $formularz->setDefaults($this->projekt->pobierz(0));
                    break;
                case 'harmonogram_projekt_zapisz':
                    if (request::method()=="post")
                        $this->_spr('sprawdz_harmonogram_projekt');
                    $this->projekt->set_id($this->session->get('id_nowy_projekt'));
                    $formularz->setDefaults($this->projekt->pobierz(0));
                    break;
            }
            $this['harmonogram']=$formularz;
            $this['numer_projektu']=$this->session->get('id_nowy_projekt');
            $this['produkt']='3';
            $this['opis2']='Zatwierdź';
            $this['link']='nowyprojekt/_harmonogram.html';
            $this['link2']='menu/__menu_wsteczzapiszprojektdalej.html';


            $this['przyciski']=array('wstecz'=>'zadania_','zapisz'=>'harmonogram_projekt_zapisz','dalej'=>'uwagi_projekt');
            //$this['przyciski']=array('wstecz'=>'osoby_pokaz','zapisz'=>'harmonogram_projekt_zapisz','dalej'=>'uwagi_projekt');
            echo $this->render('nowyprojekt/nowyprojekt.html');
        }
}